In a video display sub-system of a graphics workstation, a color look-up table is normally used to map binary values stored in a frame buffer to color values. For that reason, it is also referred to as a "colormap". The color values are fed to digital-to-analog converters ("video DAC's"), which drive a monitor, printer or other output display device.
Typically, a color look-up table is furnished for each color channel--red, green and blue--and is stored in random access memory ("RAM"). In the past, the RAM was implemented in emitter coupled logic ("ECL") and was disposed on a separate chip from that of the video DAC.
Recently, higher density CMOS technology has made it desirable to integrate the color look-up table into the video DAC chip. This approach has several advantages, for example, it is economical to implement and requires less power than that of the above-mentioned ECL implementation. Unfortunately, the size of the color look-up tables is limited by the amount of RAM that can be accommodated on the video DAC chip. While suitable for many applications, the look-up table is insufficient to support certain applications such as those which take advantage of multi-window architectures, or are used for natural imaging. This limitation is brought into sharper focus when it is realized that a state-of-the-art layout editor requires a 256.times.8 look-up table, which is the entire capacity of an eight plane color look-up table implemented on the video DAC chip.
Consider further the insufficiency of memory space on the video DAC chip. A twenty-four plane look-up table can handle a single natural image created on a CRT screen. If a user takes advantage of windowing, known windowing software packages try to "virtualize" the look-up table, or give each window a certain part of the look-up table for its own private use. This is done because of the desired independence of the windows--i.e., an application in one window employs colors which can be selected and manipulated independent of the colors maintained for other unrelated windows.
Eventually, however, the amount of memory space available for the color look-up table is fully used. Thereafter, the windowing software has to make compromises, such as having windows share color look-up table space. Such an approach affects the appearance of the displayed image by reducing the chromatic integrity of the displayed colors as additional windows are opened. To ameliorate this effect, known software packages maintain true color for the top level or "priority" window by sacrificing the color of other displayed windows.
A known hardware solution to the problem of insufficient color look-up table size is to furnish a bank of parallel RAM's, each implemented on a separate chip using ECL bipolar technology. Since the RAM's are on separate chips, the look-up table can be expanded to whatever size is required. A twelve bit wide address bus references the memories with eight bit wide signals and a data bus directs the referenced color values from one or another of the RAM chips to the DAC chip. A chip select logic uses the remaining four bits from the address bus to select the look-up table that is to output its data. Important for a graphics application, high pixel rates and fast chip-to-chip communication is characteristically attained by ECL technology.
Unfortunately, this circuit arrangement does not lend itself to the afore-described CMOS technology for several reasons. First, chip-to-chip communication is too slow and generally will not meet the real-time speed and response requirements of state-of-the-art interactive graphics workstations. Second, where one of the color look-up tables is implemented on the video DAC chip as is generally the case, access to the data bus leading between that look-up table and the DAC is not readily had. Were the data bus brought off the chip, many more pins would be needed on the video DAC chip to accommodate the resulting inter-chip communication. Unfortunately, this would be an uneconomical proposition, if it could be implemented at all. Given the typical pin requirements for the DAC, it is unlikely that sufficient space would be available on the chip for the requisite number of pins. In addition to such packaging constraints, off-chip communication with the data bus is undesirable due to the higher power levels needed to drive outputs from CMOS chips.